﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Timers;
using System.Web;
using MySql.Data.MySqlClient;

/// <summary>
/// Descripción breve de MailBL
/// </summary>
public class MailBL
{
    private Timer _timer;
    
    private void TimerElapsed(object sender, ElapsedEventArgs e)
    {
        //EnviarReporteAJefes();
    }

        public void GuardarMail (Mail mail)
        {
            try
            {

                string query = "INSERT INTO `mails` (fecha_envio, de, para, de_id, para_id, contenido) VALUES (NOW(),'" + mail.De +"','" +mail.Para+ "',"+mail.DeId+","+mail.ParaId+",'" + mail.Contenido + "')";

                MySqlConnection myConnection = new MySqlConnection();
                myConnection.ConnectionString = "Persist Security Info=False;Username=root;Password=;database=helpdeskdb;server=localhost;Connect Timeout=30";
                myConnection.Open();

                //create command and assign the query and connection from the constructor
                MySqlCommand cmd = new MySqlCommand(query, myConnection);
                //Execute command
                cmd.ExecuteNonQuery();
                //close connection
                myConnection.Close();

            }
            catch (Exception ex)
            {

                //    _Logger.Error("Error in DeleteCourse()", ex);

                throw ex;
            }

        }

        public void MandarMail(Mail mail)
        {
            {
                /*-------------------------MENSAJE DE CORREO----------------------*/

                //Creamos un nuevo Objeto de mensaje
                System.Net.Mail.MailMessage mmsg = new System.Net.Mail.MailMessage();

                //Direccion de correo electronico a la que queremos enviar el mensaje
                mmsg.To.Add(mail.Para);

                //Nota: La propiedad To es una colección que permite enviar el mensaje a más de un destinatario

                //Asunto
                mmsg.Subject = mail.Asunto;
                mmsg.SubjectEncoding = System.Text.Encoding.UTF8;

                //Direccion de correo electronico que queremos que reciba una copia del mensaje
                //mmsg.Bcc.Add("destinatariocopia@servidordominio.com"); //Opcional

                //Cuerpo del Mensaje
                mmsg.Body = mail.Contenido;
                mmsg.BodyEncoding = System.Text.Encoding.UTF8;
                mmsg.IsBodyHtml = false; //Si no queremos que se envíe como HTML

                //Correo electronico desde la que enviamos el mensaje
                mmsg.From = new System.Net.Mail.MailAddress("helpdeskdad@gmail.com");


                /*-------------------------CLIENTE DE CORREO----------------------*/

                //Creamos un objeto de cliente de correo
                System.Net.Mail.SmtpClient cliente = new System.Net.Mail.SmtpClient();

                //Hay que crear las credenciales del correo emisor
                cliente.Credentials =
                new System.Net.NetworkCredential("helpdeskdad@gmail.com", "proyecto2013");

                //Lo siguiente es obligatorio si enviamos el mensaje desde Gmail

                cliente.Port = 587;
                cliente.EnableSsl = true;


                cliente.Host = "smtp.gmail.com"; //Para Gmail "smtp.gmail.com";


                /*-------------------------ENVIO DE CORREO----------------------*/
                try
                {
                    //Enviamos el mensaje
                        cliente.Send(mmsg);
                    
                }
                catch (System.Net.Mail.SmtpException ex)
                {
                    //Aquí gestionamos los errores al intentar enviar el correo
                }
            }
        }
        

}